home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
VGADOC4B.ZIP
/
ARK.TXT
< prev
next >
Wrap
Text File
|
1995-09-29
|
9KB
|
302 lines
ARK Logic
ARK1000VL 160pin original version. No PCI support ?
ARK1000PV PCI bus version of 1000VL
ARK2000PV 208pin 64bit memory interface. 16bit path to DAC
3C4h index 10h (R/W):
bit 0-1 Should be set to 3 to access all of video memory
2-3 Set to 3 to enable memory mapped engine regs at A800h, 0 to disable
4 Set to enable the Linear frame buffer
5 ?
6 (1000) Video Memory Size. 0: 1MB, 1: 2MB
6-7 (2000) Video Memory Size. 0: 1MB, 1: 2MB, 2: 4MB, 3: 8MB
3C4h index 11h (R/W): Video Clock Select
bit 0-1 Giant Shift Register Mode.
0 ??
1 If set pixels are doubled horizontally
2-3 Accelerator pixel size. 1: 8bit, 2: 15/16bit, 3: (2000) 32bit
4 Causes lockup ??
5 ??
6-7 Clock Select bit 2-3. Bits 0-1 are in 3C2h/3CCh bits 2-3.
3C4h index 12h (R/W):
bit 0-1 Size of the linear frame buffer. 0: 64Kb, 1: 1Mb, 2: 2Mb, 3: 4Mb
2 Set in high res text modes, clear in all other modes
3-7 ??
3C4h index 13h W(R/W):
bit 0-15 Linear Address of Aperture bits 16-31.
3C4h index 15h (R/W):
bit 0-4 Write Bank in 64K units
3C4h index 16h (R/W):
bit 0-4 Read Bank in 64K units
3C4h index 17h (R/W):
bit 0-2 Pixels per scanline ?. 0: 640, 1: 800, 2: 1024, 4: 1280
3C4h index 18h (R/W):
bit 0-2 (1000) Display FIFO threshold level (0-7).
(2000) Display FIFO threshold level bits 1-3. The display FIFO is
32 levels deep on the 2000PV. Bits 0 & 4 of the threshold are in
bits 5&7 of this register.
3 If set enables the full 8 level display FIFO
5 (2000) Display FIFO threshold level bit 4.
7 (2000) Display FIFO threshold level bit 0.
3C4h index 19h (R/W):
bit 0-7 ??
7 Set for VESA bus, clear for PCI bus.
3C4h index 1Ah (R/W):
bit 0-7 Scratch ??
3C4h index 1Bh (R/W):
bit 0-7 Scratch ??
3C4h index 1Ch (R/W):
bit 0-1 Clock ??
2 Blanks display if set ?
3-4 Pixel type: 0: 16c planar (or text), 1: 8bpp, 2: 15/16bpp, 3: 24bpp
5-7 ??
3C4h index 1Dh (R/W):
bit 0 Set to enable access to extended registers.
3C4h index 1Eh (R/W):
bit 0-7 Scratch ??
3C4h index 1Fh (R/W):
bit 0-7 Scratch ??
3C4h index 20h (R/W):
bit 0 If set horizontally enlarges the cursor by a factor of 2 (15/16bpp).
1 If set horizontally enlarges the cursor by a factor of 3 (24/32bpp).
2 Set for 64x64 cursor, clear for 32x32 cursor.
3 Enable the hardware cursor if set
4 Selects Windows style cursor if clear, X11 style if set ?
3C4h index 21h (R/W):
bit 0-3 Cursor X position bits 8-11, lower 8 bits are in index 22h
3C4h index 22h (R/W):
bit 0-7 Cursor X position bits 0-7, upper 4 bits are in index 21h
3C4h index 23h (R/W):
bit 0-3 Cursor Y position bits 8-11, lower 8 bits are in index 24h
3C4h index 24h (R/W):
bit 0-7 Cursor Y position bits 0-7, upper 4 bits are in index 23h
3C4h index 25h (R/W):
bit 0-5 Selects the location of the hardware cursor map in video memory.
63 = last 256 bytes of 2Mb video memory
The cursor definition map is a 32x32 or 64x64 bitmaps stored as a
a sequence of 16bit words, each word defines 8 pixels. Bits 0 & 8
defines the leftmost pixel, bits 7 & 15 the rightmost.
Low bit: High bit: Result (Windows):
0 0 Cursor Color 1
1 0 Screen data
0 1 Cursor Color 0
1 1 Inverse screen (XOR cursor)
3C4h index 26h (R/W): "Cursor Color 0 low"
bit 0-7 Cursor Color 0. Palette index in palette modes, in direct color modes
the low byte of the 2 or 3 bytes pixel.
3C4h index 27h (R/W): "Cursor Color 0 middle"
bit 0-7 The 2nd byte of the 2 or 3 bytes Color 0 pixel
3C4h index 28h (R/W): "Cursor Color 0 high"
bit 0-7 The high byte of the 3 bytes Color 0 pixel in 24bit modes
3C4h index 29h (R/W): "Cursor Color 1 low"
bit 0-7 Cursor color 1. Palette index in palette modes, in direct color modes
the low byte of the 2 or 3 bytes pixel.
3C4h index 2Ah (R/W): "Cursor Color 1 middle"
bit 0-7 The 2nd byte of the 2 or 3 bytes Color 1 pixel
3C4h index 2Bh (R/W): "Cursor Color 1 high"
bit 0-7 The high byte of the 3 bytes Color 1 pixel in 24bit modes
3C4h index 2Ch (R/W):
bit 0-5 Cursor X Hotspot.
3C4h index 2Dh (R/W):
bit 0-5 Cursor Y Hotspot.
3CBh (R):
bit 0-3 Number of FIFO slots free ??
6 Set when engine busy ??
3d4h index 29h (R/W):
bit 0-2 ??
3d4h index 30h
bit 0 If set ??
1-2
3d4h index 31h (R/W):
bit 0 Causes wraps if set ?
1 ??
2 If set doubles each scan line vertically
3-4 ??
5 If set causes a one pixel shift to the right.
3d4h index 40h (R/W): Extended Horizontal CRTC Timings
bit 0-2 Display Start Address bit 16-18. Bits 0-15 are in 3d4h index 0Ch,0Dh
3 ?
4 Vertical Retrace Start bit 10. Bits 0-7 are in 3d4h index 10h.
5 Vertical Blank Start bit 10. Bits 0-7 are in 3d4h index 15h.
6 Vertical Display End bit 10. Bits 0-7 are in 3d4h index 12h.
7 Vertical Total bit 10. Bits 0-7 are in 3d4h index 06h.
3d4h index 41h (R/W): Extended Vertical CRTC Timings
bit 3 CRTC Offset bit 8. Bits 0-7 are in 3d4h index 13h.
4 Horizontal Retrace Start bit 8. Bits 0-7 are in 3d4h index 04h
5 Horizontal Blank Start bit 8. Bits 0-7 are in 3d4h index 02h
6 Horizontal Display End bit 8. Bits 0-7 are in 3d4h index 01h
7 Horizontal Total bit 8. Bits 0-7 are in 3d4h index 00h.
3d4h index 42h (R/W): Interlace Retrace
bit 0-7 In interlaced modes should be ~half of Horizontal Total.
3d4h index 43h (R/W):
bit 0-1 Same as index 40h bit 0-1 ??
2
3 If set display wraps at 256K
4-7 ??
3d4h index 44h (R/W): VGA Enhancement Register
bit 0 Disables RAMDAC access
1 ??
2 If set the display is interlaced
3-7 ??
3d4h index 45h (R/W):
bit 0-3 ??
3d4h index 46h (R/W): Pixel Clock Control
bit 2 (2000) If set 16 bits are sent to the DAC per pixel clock
3-5 ??
6 Inverts the pixel clock if set.
7 ??
3d4h index 50h (R):
bit 3-7 Chip ID. 11h for the 1000VL, 12h for the 1000PV, 13h for the 2000PV
The ARK can memory map the accelerator registers at A8000h:
M+00h W():
M+02h W():
bit 0-? Drawing Style. 0: Solid, 1: Dashed, 2: Dotted, 3: DotDash,
4: DashDotDot
M+08h W():
bit 0-? Fill Color ??
M+0Ah W():
M+18h W():
bit 8-11 ROP. 0: Black (0), 1: Dest AND Src, 2: Src AND (NOT Dest), 3: Src,
4: Dest AND (NOT Src), 5: Dest, 6: Dest XOR Src, 7: Src OR Dest,
8: NOT (Src OR Dest), 9: NOT (Dest XOR Src), 10: NOT Dest, 11: Src
OR (NOT Dest), 12: NOT Src, 13: Dest AND (NOT Src), 14: NOT (Dest
XOR Src), 15: White (1)
M+1Ah W()
bit 0-15 Set to FFFFh ?? Write mask ??
M+50h W(): Bresenham Error Term.
bit 0-? 2*min(deltaX,deltaY)-max(deltaX,deltaY)
M+54h W(): Bresenham Constant 1
bit 0-? 2*min(deltaX,deltaY)
M+56h W(): Bresenham Constant 2
bit 0-? 2*min(deltaX,deltaY)-2*max(deltaX,deltaY)
M+58h W():
bit 0-15 Cliping Rect - Left Border. Lowest X coordinate drawn
M+5Ah W():
bit 0-15 Cliping Rect - Top Border. Lowest Y coordinate drawn
M+5Ch W():
bit 0-15 Cliping Rect - Right Border. Highest X coordinate drawn
M+5Eh W():
bit 0-15 Cliping Rect - Bottom Border. Highest Y coordinate drawn
M+60h W():
M+62h W():
M+68h W():
M+6Ch W():
bit 0-2 X index into 8x8 pattern ?
3-5 Y index into 8x8 pattern ?
6- ??
9-10 Both set ??
or ?
bit 0-15 Starting Source X coordinate
M+6Eh W():
bit 0-15 Starting Source Y coordinate
M+70h W():
bit 0-15 Starting X coordinate
M+72h W():
bit 0-15 Starting Y coordinate
M+74h W():
bit 0-? For line draw: Number of pixels drawn, for BitBlts the area width in
pixels (-1 ?)
M+76h W():
bit 0-? For BitBlts the number of lines in the blt area (-1 ?)
M+7Ch D():
bit 16 Linedraw: Set if abs(deltaY) < deltaX
17 Linedraw: Set if EndY < StartY
18 Linedraw: Set if EndX < StartX
21 Set for Line draw
24 Set for ?? source
28 Set for linedraw
29 Set for BitBlt
bit 4 or 26 set if source is a Pattern ??
bit 8,9,12 or 23 set if source data is from CPU ??
Modes:
24h T 132 25 16 ()
26h T 132 43 16 ()
27h T 132 50 16 ()
31h G 800 600 16 PL4
32h G 1024 768 16 PL4
33h G 1280 1024 16 PL4
40h G 640 480 256 P8
41h G 800 600 256 P8
42h G 1024 768 256 P8
43h G 1280 1024 256 P8
44h G 1600 1280 256 P8
4Fh G 640 400 256 P8
50h G 640 480 32K P15
51h G 800 600 32K P15
52h G 1024 768 32K P15
54h G 640 480 64K P16
55h G 800 600 64K P16
56h G 1024 768 64K P16
58h G 640 480 16M P24
59h G 800 600 16M P24